1. Field of the Invention
The embodiments of the invention generally relate to network computing, and, more particularly, to network-based data transferring systems.
2. Description of the Related Art
The transfer of data from one system to another is a fundamental aspect of network computing. With the advent of grid and localized orchestration of file distribution, the transfer of data from a first system to a second system (i.e., peer-to-peer data transfer) has increased considerably. Data transfer requests in a grid system are generally services performed by many systems.
However, there are generally two major problems with these approaches to data transfer. First, peers are bandwidth limited by the technology or configuration of their connection to the network. A peer is a computing system participating in a networked environment. Most peers are limited by a single connection to the network (e.g. ethernet port, wireless, etc.). A router and bridge that connects a peer to a larger network of peers often brokers their connection. Even if the peer happens to be a mainframe with multiple connections to multiple networks, there generally is a limitation to the amount of data that can be transferred to the peer. Specifically, each network connection can typically only sustain a maximum rate of transfer and this is true for network hubs, switches, and bridges.
Second, the existing systems typically address orchestration servers. Approaching the problem from a server side perspective optimizes the data transfer load from one server to many. This provides optimal load distribution and higher transfer rates for client peers receiving the data. However, clients typically have limitations on how much data they can pull down at any one time.
With the popular reinvigoration of grid technologies, the exploitation of segmented data transfer has become a focus in leveraging peer networks. The shortcomings of the conventional approaches generally include the finite data transfer resource of the requesting system.
FIG. 1 illustrates a basic data transfer scenario, where data is transferred from a data serving system (second system/client) 100 to a requesting system (first system) 101. In this data transfer scenario where, for example, the first system 101 requests a 1,000 MB file from the client 100, and the current client 100 is constrained at 1 MB/second. The file will transfer in approximately 17 minutes in a best-case scenario using a local area network (LAN) 103. Data transfer is also dependant on the ability of the second system 100 to correctly transfer the data, the location, etc. The data transfer will require almost all of the bandwidth available from the first system 101 in order to accomplish this task. The best-case scenario is the same as the single transfer and could even be worse due to overhead. Often the best case scenario is not possible and the initial transfer of 1,000 MB in 17 minutes is more likely to occur in 83 minutes (transferring at 0.2 MB/sec); an 80% increase in time.
The industry has generally established segmented data transfer as a popular way for increasing efficiency over traditional single threaded transfer as illustrated in FIG. 2. Segmented data transfers call upon multiple data sources 100 to service segments 101. The limitation to this approach is the fixed nature of the available bandwidth for a given server.
Peer-to-peer applications and architectures, such as the network illustrated in FIG. 3, offer a method of identifying data and transferring that data, often from multiple sources 160, to achieve the benefits of segmented file transfer. Again, this approach is generally limited by the physical configuration of the network bandwidth allocated to the requesting server 165. Accordingly, there remains a need for a novel peer-to-peer data transfer technique that overcomes the limitations of the conventional solutions.